const user = require("../databases/user");
const jwt = require("jsonwebtoken")

module.exports = (req, res, next)=>{
  const {token, uId, age, sex, tel, nickName} = req.body;
  // 先验证token是否有效
  jwt.verify(token, "千锋H5", (err, tokenData)=>{
    if(err){
      res.send({
        code:0,
        msg:"登录失效或未登录"
      })
    }else{
      // 处理要修改的数据
      const userData = {};
      if(age) userData.age = age-0;
      if(sex) userData.sex = sex;
      if(nickName) userData.nickName = nickName;
      if(tel) userData.tel = tel;

      // 根据不同的条件，修改不同的信息
      if(tokenData.uId === uId || !uId){
        user.updateOne({ uId:tokenData.uId }, userData).then(()=>{
          res.send({
            code: 1,
            msg:"修改自己的信息成功"
          })
        })
      }else if(tokenData.power == 2){
        user.updateOne({ uId }, userData).then(()=>{
          res.send({
            code: 1,
            msg:"修改别人的信息成功"
          })
        })
      }else{
        res.send({
          code:2,
          msg:"权限不够，无法修改其他用户信息"
        })
      }
    }
  })
}

// 已知：登录成功后会将登录账号的uId和power存入token

// 判断当前登录账号要改的是自己的信息还是别人的信息
  // token内的uId和传入的uId是否相等

// 改自己情况1：token内的uId和传入的uId相等
// 改自己情况2：不传uId

// 改别人：token内的uId和传入的uId不相等
// 要求权限为管理员权限：token内的power为2